package com.cmc.cloud.cmclink.doc.convert;

import com.cmc.cloud.cmclink.doc.api.document.rep.BlnoVslvoyRespDto;
import com.cmc.cloud.cmclink.doc.api.document.req.si.BlnoVslvoyUpdateReqDto;
import com.cmc.cloud.cmclink.doc.entity.BlnoVslvoyDO;
import com.cmc.cloud.cmclink.doc.mq.SiEdiReqVO;
import com.cmc.cloud.cmclink.doc.vo.blnovslvoyvo.BlnoVslvoyCreateReqVO;
import com.cmc.cloud.cmclink.doc.vo.blnovslvoyvo.BlnoVslvoyRespVO;
import com.cmc.cloud.cmclink.doc.vo.blnovslvoyvo.BlnoVslvoyUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 提单航线船期信息 Convert
 *
 * @author 集运管理员
 */
@Mapper
public interface BlnoVslvoyConvert {

    BlnoVslvoyConvert INSTANCE = Mappers.getMapper(BlnoVslvoyConvert.class);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoVslvoyDO convert(BlnoVslvoyCreateReqVO bean);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoVslvoyDO convert(BlnoVslvoyUpdateReqVO bean);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoVslvoyRespVO convert(BlnoVslvoyDO bean);

    /**
     * 属性转换
     *
     * @param list
     * @return
     */
    List<BlnoVslvoyRespVO> convertList(List<BlnoVslvoyDO> list);

    /**
     * 属性转换
     *
     * @param blnoVslvoyUpdateReqDtoList
     * @return
     */
    List<BlnoVslvoyUpdateReqVO> convertBlnoVslvoyUpdateReqVO(List<BlnoVslvoyUpdateReqDto> blnoVslvoyUpdateReqDtoList);

    /**
     * 属性转换
     *
     * @param vslvoyList vslvoyList
     * @return list
     */
    List<BlnoVslvoyUpdateReqVO> ediConvertBlnoVslvoyUpdateReqVO(List<SiEdiReqVO.Vslvoy> vslvoyList);
    /**
     * 属性转换
     *
     * @param blnoVslvoyUpdateReqDtoList
     * @return
     */
    List<BlnoVslvoyUpdateReqDto> convertBlnoVslvoyUpdateReqDto(List<BlnoVslvoyUpdateReqVO> blnoVslvoyUpdateReqDtoList);

    /**
     * 属性转换
     *
     * @param blnoVslvoyDoList
     * @return
     */
    List<BlnoVslvoyRespDto> convertBlnoVslvoyRespDto(List<BlnoVslvoyDO> blnoVslvoyDoList);

}
